package me.zhengjie.modules.account.factory.entity;

import com.google.common.collect.Maps;
import lombok.Data;
import lombok.RequiredArgsConstructor;
import me.zhengjie.modules.account.factory.vo.AnnualConversion;
import me.zhengjie.modules.account.factory.vo.AnnualConversionTransverse;
import me.zhengjie.modules.account.factory.vo.IndividualAccount;
import me.zhengjie.modules.account.factory.vo.IndividualAccountParameter;
import me.zhengjie.modules.account.mapper.AccountAc50Mapper;
import me.zhengjie.tool.MyMap;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;


import javax.annotation.Resource;
import javax.sound.midi.Sequence;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * 在职个人账户领域对象
 */
@Component
@RequiredArgsConstructor
@Data
public  class BasePersonAccount{
    @Resource
    private AccountAc50Mapper accountAc50Mapper;

    private static final long serialVersionUID = 1234567L;
    protected Integer aae041;//计息开始年月
    protected Integer aae042;//计息结束年月
    protected Integer aic376;//计息结束年月
    protected Integer incomeDeadline;//收入结束年月
    protected String aaz159; //参保关系ID
    protected String aac001;//个人编号
    protected String aae140;//险种
    protected String aaz117Batch;

    protected boolean maimTreatment;//病残待遇标识

    protected List<Map> maimTreatmentList = new ArrayList<>();//病残待遇年度扣减明细

    protected Map<String, List<Map>> ac50Map = Maps.newHashMap();//多个个人账户类型
    protected List<InterestRate> interestRateInfo = new ArrayList<>();//利率信息
    protected List<AnnualConversion> annualConversions = new ArrayList();//业务年度信息
    protected Map<Integer, List<AnnualConversionTransverse>> businessAae001Map = Maps.newHashMap();//业务年度对应的开始，结束时间
    protected Map<Integer, List<InterestRate>> toYearsCurrentInterestRate = Maps.newHashMap();//年度对应的当年利率
    protected Map<Integer, List<InterestRate>> toYearsOverInterestRate = Maps.newHashMap();//年度对应的历年利率
    protected List<Map> allAc08List = new ArrayList();
    protected List<Map> alltransferRefundAc08List = new ArrayList();

    protected List<IndividualAccountParameter> IndividualAccountParameters = new ArrayList();//装载Ac51
    protected List<IndividualAccount> IndividualAccounts = new ArrayList();//装载ac50

    protected List<Map<String, Integer>> deleteAaz116s = new ArrayList();//装载ac50
    protected List<MyMap> deleteAaz117s = new ArrayList();//装载ac50

    protected List<IndividualAccountParameter> IndividualAccountLocalitys = new ArrayList();//装载Ac51A1

}
